<template>
	<view class="container">
		<view class="form-box">
			<text class="title">登录</text>
			<view class="input-group">
				<!-- 占位符提示改为“用户名”，匹配 Schema 字段 -->
				<input type="text" placeholder="请输入用户名" v-model="username" />
			</view>
			<view class="input-group">
				<input type="password" placeholder="请输入密码" v-model="password" />
			</view>
			<button class="btn" @click="login">登录</button>
			<navigator url="/pages/Register/Register" class="link">没有账号？去注册</navigator>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				username: '', // 字段名保持 username（匹配 Schema）
				password: ''
			}
		},
		methods: {
			async login() {
			  // 1. 前端基础验证
			  if (!this.username || !this.password) {
			    uni.showToast({
			      title: '请输入用户名和密码',
			      icon: 'none'
			    })
			    return;
			  }
			  
			  try {
			    // 2. 调用云函数（参数改为 username，匹配云函数入参）
			    const res = await uniCloud.callFunction({
			      name: 'checkUser',
			      data: {
			        username: this.username, // 关键：参数名改为 username
			        password: this.password
			      }
			    });
			    
			    // 3. 处理云函数返回结果
			    const { code, msg, data } = res.result;
			    if (code === 200) {
			      // 存储登录状态（字段名改为 username）
			      uni.setStorageSync('isLogin', true);
			      uni.setStorageSync('userInfo', {
			        username: data.username, // 匹配 Schema 的 username 字段
			        userId: data._id
			      });
			      
			      // 跳转个人中心
			      uni.switchTab({
			        url: '/pages/Custom/LoginPage/LoginPage',
			        success: () => {
			          uni.showToast({
			            title: '登录成功',
			            icon: 'success'
			          });
			        },
			        fail: (err) => {
			          console.error('跳转失败：', err);
			          uni.showToast({
			            title: '页面跳转失败',
			            icon: 'none'
			          });
			        }
			      });
			    } else if (code === 401) {
			      uni.showToast({
			        title: msg,
			        icon: 'none'
			      });
			    } else {
			      uni.showToast({
			        title: msg || '登录失败',
			        icon: 'none'
			      });
			    }
			  } catch (err) {
			    console.error('登录请求失败：', JSON.stringify(err)); // 打印完整错误
			    uni.showToast({
			      title: '网络错误，请重试',
			      icon: 'none'
			    });
			  }
			}
		}
	}
</script>

<style>
	/* 样式无需修改，保持原样 */
	.container {
	  display: flex;
	  justify-content: center;
	  align-items: center;
	  min-height: 100vh;
	  background-color: #f5f5f5;
	}
	.form-box {
	  width: 80%;
	  max-width: 400px;
	  background-color: #fff;
	  padding: 20px;
	  border-radius: 8px;
	  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	}
	.title {
	  display: block;
	  text-align: center;
	  font-size: 20px;
	  font-weight: bold;
	  margin-bottom: 20px;
	}
	.input-group {
	  margin-bottom: 15px;
	}
	.input-group input {
	  width: 100%;
	  padding: 10px;
	  border: 1px solid #ddd;
	  border-radius: 4px;
	}
	.btn {
	  width: 100%;
	  padding: 10px;
	  background-color: #007aff;
	  color: #fff;
	  border: none;
	  border-radius: 4px;
	  margin-bottom: 10px;
	}
	.link {
	  display: block;
	  text-align: center;
	  color: #007aff;
	  font-size: 14px;
	}
</style>